package cn.wolfcode.wms.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.wolfcode.wms.domain.Permission;
import cn.wolfcode.wms.domain.Role;
import cn.wolfcode.wms.query.QueryObject;

public interface RoleMapper {

	/**
	 * 保存角色信息
	 * @param role 封装角色信息的对象
	 */
	void save(Role role);
	
	/**
	 * 删除角色信息
	 * @param id 需要删除的角色编号
	 */
	void delete(Long id);
	
	/**
	 * 更新角色信息
	 * @param role 需要更新的角色编号
	 * @param ids 
	 */
	void update(Role role);
	
	/**
	 * 查询一条角色信息
	 * @param id 需要查询的角色编号
	 * @return 如果查到返回角色对象,否则返回null
	 */
	Role get(Long id);
	
	/** 
	 * 查询分页角色信息
	 * @return 如果查到返回角色信息的list集合,否则返回空的集合
	 */
	List<Role> list();

	int queryForCount(QueryObject qo);

	List<Role> queryForList(QueryObject qo);

	void saveRoleAndPermissionRelation(@Param("rId")Long rId, @Param("pId")Long pId);

	void deleteRoleAndPermissionRelation(Long id);

	void saveRoleAndSystemMenuRelation(@Param("rId")Long id,@Param("mId")Long mId);

	void deleteRoleAndSystemMenuRelation(Long id);

}
